#include "common.h"
#include "outputer.h"
#include <fstream>

Outputer::Outputer(std::string filename) {
    outfile.open(filename);
}

void Outputer::output(allocs &allocs_out) {
    for (int i = 0; i < int(allocs_out.c_alloc_list.size()); i++) {
        // if (i > 0) {
        //     outfile << std::endl;
        // }
        outfile << allocs_out.c_alloc_list[i].cid << ":";
        int flag = 0;
        for (int j = 0; j < int(allocs_out.c_alloc_list[i].s_alloc_list.size()); j++) {
            if (allocs_out.c_alloc_list[i].s_alloc_list[j].alloc == 0) {
                continue;
            }
            if (flag) {
                outfile << ",";
            } else {
                flag = 1;
            }
            outfile << "<" << allocs_out.c_alloc_list[i].s_alloc_list[j].sid << "," << allocs_out.c_alloc_list[i].s_alloc_list[j].alloc << ">";
        }
        outfile << std::endl;
    }
}

Outputer::~Outputer() {
    outfile.close();
}

